const multer = require('multer'),
    path = require('path'),
    { mkdirs } = require('../config/mkdir'),
    { User } = require("../model/dbmodel")
// 使用控制存储
//获取路径 resolve('./')上一级目录 __dirname当前目录 __filename当前文件的路径
//目录必须存在否则 找不到文件
// let fullPath=path.resolve('./data')
// console.log(fullPath,'fullPath');
let storage = multer.diskStorage({
    // 设置存储路径===multer({dest:'attachment/'})
    destination: function (req, file, cb) {
        // 上传文件放在哪里 需要动态的创建
        let url = "user" 
        // console.log(url);
        // 自动创建文件夹,当前文件上一级的data/+url如果没有目录就新建
        mkdirs('../data/' + url, err => {
            // console.log(err, 'err');
        })
        cb(null, './data/' + url)
    },
    // 设置文件名
    filename: function (req, file, cb) {
        // console.log(file, "image url"); 
        // 通过前端传递name 时间+uid+i
        let name = Date.now() + Math.ceil(Math.random() * 10)
        // path.extname(string)获取扩展名
        let extname = path.extname(decodeURIComponent(file.originalname));
        // console.log(name,extname,'name+extname');
        cb(null, name + extname)
    }
})
let upload = multer({
    storage: storage,
    limits: {
        //限制文件大小3000kb 3mb
        fileSize: 3000 * 1000,
        //限制文件数量
        files: 5
    }
})
// upload.single() 单个文件
// .array("photo",3) 多个文件
// .any() 任意文件
// .none() 只会接收表单文本数据
module.exports = (app) => {
    // let upload=multer({dest:"attachment/"}).single("photo");
    app.post('/upload/upload', upload.array('file', 9), (req, res) => {
        // 上传多个文件 对应的files
        // console.log(req.body ,'req.file');//为什么这里有数据，但是upload中没有数据
        let { url, id } = req.body  
        // console.log(req.files[0],'req.files[0]');
        let name = req.files[0].filename 
        // console.log(req.files[0],'name');
        let userImgProfile = '/' + url + '/' + name 
        // res.send({ status: "200", userImgProfile })
        // return;
        if (url == 'user') {
            let updatestr = { imgrul: userImgProfile }
            User.findByIdAndUpdate(id, updatestr, (err, result) => {
                if (err) {
                    res.send({ status: 500 })
                } else {
                    res.send({ status: 200 })
                }
            })
        } else {
            //聊天数据 返回图片的路径
            res.send({ status: 200, userImgProfile })

        }
        // res.send(userImgProfile)
    })
}